import validate from 'wechat-validate'
const app = getApp()
Page({
  onLoad({
    returnURL
  }) {
    // 存储 回跳的页面地址
    this.setData({
      returnURL
    })
  },
  behaviors: [validate],
  data: {
    countDownVisible: false,
    mobile: '',
    errmsg: '',
    code: '',
    returnURL: '' // 回跳的地址
  },
  rules: {
    mobile: [{
        required: true,
        message: '请输入手机号'
      },
      {
        pattern: /^1[3-9]\d{9}$/,
        message: '请输入正确的手机号'
      }
    ],
    code: [{
        required: true,
        message: '请输入验证码'
      },
      {
        pattern: /^\d{6}$/,
        message: '请输入正确的验证码'
      }
    ]
  },
  countDownChange(ev) {
    this.setData({
      timeData: ev.detail,
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },
  async changeVisible() {
    // 1. 校验手机号的合法性(手机号规则）
    // if (!this.data.mobile.trim()) return wx.utils.toast('请输入手机号')
    // if (!/^1[3-9]\d{9}$/.test(this.data.mobile)) return wx.utils.toast('请输入正确的手机号')
    // if (!this.data.mobile.trim()) return this.setData({
    //   errmsg: '请输入手机号'
    // })
    // if (!/^1[3-9]\d{9}$/.test(this.data.mobile)) return this.setData({
    //   errmsg: '请输入正确的手机号'
    // })
    // 使用wechat-validate校验
    const {
      valid, // 布尔值 true表示校验通过 false表示校验失败
      message // 校验失败的提示文本
    } = this.validate('mobile')
    if (!valid) return wx.utils.toast(message)
    // 2. 开启倒计时 
    this.setData({
      countDownVisible: true,
      errmsg: ''
    })
    // 3. 发送请求 获取短信验证码
    await wx.http.get('/code', {
      mobile: this.data.mobile
    })
    // 4. 提示
    wx.utils.toast('验证码已发送')
  },
  // 登录
  async login() {
    // 1. 校验表单数据
    const isAllValid = this.validate()
    if (!isAllValid) return
    // 2. 发送登录的请求
    const res = await wx.http.post('/login', {
      mobile: this.data.mobile,
      code: this.data.code
    })
    // 3. 提示
    if (res.code !== 10000) return wx.utils.toast('登录失败')
    // 4. 存储token相关信息
    app.setTokenInfo('token', res.data.token)
    app.setTokenInfo('refreshToken', res.data.refreshToken)
    // 5. 跳转
    if (this.data.returnURL) {
      // 单独处理 my页面 因为它是tabbar页面
      if (this.data.returnURL.includes('my/index')) {
        wx.switchTab({
          url: this.data.returnURL,
        })
      } else {
        wx.navigateTo({
          url: this.data.returnURL,
        })
      }
    } else {
      wx.switchTab({
        url: '/pages/index/index',
      })
    }
  }
})